Method and Apparatus for Providing a Central Dictionary and Glossary Server

ABSTRACT

A method and apparatus provides a central dictionary and glossary server. An application executing on a client is able to access a local copy of a dictionary or glossary. A master dictionary or glossary is updated at a server, and the update to the master dictionary or glossary is served to the application on the client to update the local copy of the dictionary or glossary. A datastream may also be processed by automatically scanning a datastream and automatically detecting, in the datastream, a word that cannot be matched to a word in a dictionary or glossary. The unmatched word is identified as an acronym, and in response, data associated with the acronym, selected from a hierarchical set of glossaries, is inserted into the datastream in close proximity to the acronym. In another aspect of processing a datastream, in response to an indication that the unmatched word is a properly spelled new term, a dictionary or glossary may be updated with the new term, and the dictionary or glossary is a member of a hierarchically ordered set of dictionaries and/or glossaries. The system may also contain an organizational database comprising information for organizational units associated with a data processing system, and each glossary in the hierarchical set of glossaries is associated with an organizational unit.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present invention is related to application entitled “METHOD ANDAPPARATUS FOR ACRONYM CHECKER AND AUTODEFINER”, Ser. No. ______,attorney docket no. AT9-98-922, assigned to the same assignee, andincorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Technical Field

The present invention relates generally to an improved data processingsystem and, in particular, to a method and apparatus for processingdocuments and text streams.

2. Description of Related Art

Jargon is the bane of one's life in the modern world. Scientists andengineers are confronted with journals and papers that are filled withtechnical jargon. Government agencies produce voluminous reports withspecial terms and acronyms.

Many of these documents are written by persons familiar with technologybut are not necessarily written by technical writers. Therefore, thesedocuments are not written in a manner sympathetic to one who isunfamiliar with the subject matter. The documents tend to have manyundefined terms that may include cryptic and undefined terms andacronyms. It may be difficult or impossible to read and comprehend adocument with undefined terms.

The problem of simplifying technical papers grows steadily worse astechnology marches onward. Although many corporations have attempted toincorporate open standards into their products, which results in someterms for proprietary technology becoming obsolete and unused, thenumber of special terms continues to increase rather than decrease.Technological growth spurs more technological innovation that requiresspecial words to be coined for new concepts. As a result, more specialterms or words are created.

The coining of new words and acronyms does not follow any particularrules, and there is no central authority that acts as a clearinghousefor reserving words. This state of affairs compounds the problem of newjargon because identically spelled acronyms may be created that haveentirely different meanings. New words may be created within anorganization that have different meanings depending on the person usingthe word and/or the context in which the word appears. It can then beespecially difficult to determine which meaning was intended by theauthor of a document if the user is aware of two identically spelledwords with different meanings.

Moreover, the definition or description of a new word or acronym for anewly developed concept or product may be slowly disseminated throughoutan organization so that some persons understand a new term while othersare unaware of its meaning.

Therefore, it would be advantageous to have a method and apparatus forrendering documents more readable. It would be further advantageous ifthe method and apparatus provided a user with the ability to understanddocuments in a manner that was reconciled to the user's context. Itwould be particularly advantageous if information about new terms weredisseminated throughout an organization in a timely manner.

SUMMARY OF THE INVENTION

The present invention is a method and apparatus for providing a centraldictionary and glossary server. An application executing on a client isable to access a local copy of a dictionary or glossary. A masterdictionary or glossary is updated at a server, and the update to themaster dictionary or glossary is served to the application on the clientto update the local copy of the dictionary or glossary. A datastream mayalso be processed by automatically scanning a datastream andautomatically detecting, in the datastream, a word that cannot bematched to a word in a dictionary or glossary. The unmatched word isidentified as an acronym, and in response, data associated with theacronym, selected from a hierarchical set of glossaries, is insertedinto the datastream in close proximity to the acronym. In another aspectof processing a datastream, in response to an indication that theunmatched word is a properly spelled new term, a dictionary or glossarymay be updated with the new term, and the dictionary or glossary is amember of a hierarchically ordered set of dictionaries and/orglossaries. The system may also contain an organizational databasecomprising information for organizational units associated with a dataprocessing system, and each glossary in the hierarchical set ofglossaries is associated with an organizational unit.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objectives and advantages thereof, willbest be understood by reference to the following detailed description ofan illustrative embodiment when read in conjunction with theaccompanying drawings, wherein:

FIG. 1 depicts a pictorial representation of a distributed dataprocessing system in which the present invention may be implemented;

FIG. 2 is a block diagram depicting a data processing system, which maybe implemented as a server;

FIG. 3 is a block diagram illustrating a data processing system in whichthe present invention may be implemented;

FIG. 4 is a diagram depicting an example for configuring adictionary/spell checker and an acronym/glossary tool among othersoftware components in relation to the storage of data files andinformation that may be accessed by each of the software components;

FIG. 5 is a diagram depicting a standard document window within agraphical user interface;

FIG. 6 is a pictorial representation of an application window depictinga manner in which an acronym/glossary tool may be invoked in anotherapplication;

FIG. 7 is a pictorial document window depicting an acronym and itsexpansion within a datastream;

FIG. 8 is a pictorial representation depicting a dialog box for a toolthat combines spell checking capabilities and glossary term processingcapabilities;

FIG. 9 is a pictorial representation depicting a set of hierarchicallyarranged glossaries;

FIG. 10 is a pictorial representation depicting a specific user'spreference list for the manner in which a set of hierarchically arrangedglossaries are to be searched; and

FIG. 11 is a diagram depicting a standard document window within agraphical user interface in which a user is presented with a choice ofinformation retrieved from multiple glossaries.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

With reference now to the figures, FIG. 1 depicts a pictorialrepresentation of a distributed data processing system in which thepresent invention may be implemented. Distributed data processing system100 is a network of computers in which the present invention may beimplemented. Distributed data processing system 100 contains a network102, which is the medium used to provide communications links betweenvarious devices and computers connected together within distributed dataprocessing system 100. Network 102 may include permanent connections,such as wire or fiber optic cables, or temporary connections madethrough telephone connections.

In the depicted example, a server 104 is connected to network 102 alongwith storage unit 106. In addition, clients 108, 110, and 112 also areconnected to a network 102. These clients 108, 110, and 112 may be, forexample, personal computers or network computers. For purposes of thisapplication, a network computer is any computer, coupled to a network,which receives a program or other application from another computercoupled to the network. In the depicted example, server 104 providesdata, such as boot files, operating system images, and applications toclients 108-112. Clients 108, 110, and 112 are clients to server 104.Distributed data processing system 100 may include additional servers,clients, and other devices not shown. In the depicted example,distributed data processing system 100 is the Internet with network 102representing a worldwide collection of networks and gateways that usethe TCP/IP suite of protocols to communicate with one another. At theheart of the Internet is a backbone of high-speed data communicationlines between major nodes or host computers, consisting of thousands ofcommercial, government, educational and other computer systems thatroute data and messages. Of course, distributed data processing system100 also may be implemented as a number of different types of networks,such as for example, an intranet, a local area network (LAN), or a widearea network (WAN). FIG. 1 is intended as an example, and not as anarchitectural limitation for the present invention.

Referring to FIG. 2, a block diagram depicts a data processing system,which may be implemented as a server, such as server 104 in FIG. 1, inaccordance with a preferred embodiment of the present invention. Dataprocessing system 200 may be a symmetric multiprocessor (SMP) systemincluding a plurality of processors 202 and 204 connected to system bus206. Alternatively, a single processor system may be employed. Alsoconnected to system bus 206 is memory controller/cache 208, whichprovides an interface to local memory 209. I/O bus bridge 210 isconnected to system bus 206 and provides an interface to I/O bus 212.Memory controller/cache 208 and I/O bus bridge 210 may be integrated asdepicted.

Peripheral component interconnect (PCI) bus bridge 214 connected to I/Obus 212 provides an interface to PCI local bus 216. A number of modemsmay be connected to PCI bus 216. Typical PCI bus implementations willsupport four PCI expansion slots or add-in connectors. Communicationslinks to network computers 108-112 in FIG. 1 may be provided throughmodem 218 and network adapter 220 connected to PCI local bus 216 throughadd-in boards.

Additional PCI bus bridges 222 and 224 provide interfaces for additionalPCI buses 226 and 228, from which additional modems or network adaptersmay be supported. A memory-mapped graphics adapter 230 and hard disk 232may also be connected to I/O bus 212 as depicted, either directly orindirectly.

Those of ordinary skill in the art will appreciate that the hardwaredepicted in FIG. 2 may vary. For example, other peripheral devices, suchas optical disk drives and the like, also may be used in addition or inplace of the hardware depicted. The depicted example is not meant toimply architectural limitations with respect to the present invention.

The data processing system depicted in FIG. 2 may be, for example, anIBM RISC/System 6000 system, a product of International BusinessMachines Corporation in Armonk, N.Y., running the Advanced InteractiveExecutive (AIX) operating system.

With reference now to FIG. 3, a block diagram illustrates a dataprocessing system in which the present invention may be implemented.Data processing system 300 is an example of a client computer. Dataprocessing system 300 employs a peripheral component interconnect (PCI)local bus architecture. Although the depicted example employs a PCI bus,other bus architectures such as Micro Channel and ISA may be used.Processor 302 and main memory 304 are connected to PCI local bus 306through PCI bridge 308. PCI bridge 308 also may include an integratedmemory controller and cache memory for processor 302. Additionalconnections to PCI local bus 306 may be made through direct componentinterconnection or through add-in boards. In the depicted example, localarea network (LAN) adapter 310, SCSI host bus adapter 312, and expansionbus interface 314 are connected to PCI local bus 306 by direct componentconnection. In contrast, audio adapter 316, graphics adapter 318, andaudio/video adapter 319 are connected to PCI local bus 306 by add-inboards inserted into expansion slots. Expansion bus interface 314provides a connection for a keyboard and mouse adapter 320, modem 322,and additional memory 324. SCSI host bus adapter 312 provides aconnection for hard disk drive 326, tape drive 328, and CD-ROM drive330. Typical PCI local bus implementations will support three or fourPCI expansion slots or add-in connectors.

An operating system runs on processor 302 and is used to coordinate andprovide control of various components within data processing system 300in FIG. 3. The operating system may be a commercially availableoperating system such as OS/2, which is available from InternationalBusiness Machines Corporation. “OS/2” is a trademark of InternationalBusiness Machines Corporation. An object oriented programming systemsuch as Java may run in conjunction with the operating system andprovides calls to the operating system from Java programs orapplications executing on data processing system 300. “Java” is atrademark of Sun Microsystems, Inc. Instructions for the operatingsystem, the object-oriented operating system, and applications orprograms are located on storage devices, such as hard disk drive 326,and may be loaded into main memory 304 for execution by processor 302.

Those of ordinary skill in the art will appreciate that the hardware inFIG. 3 may vary depending on the implementation. Other internal hardwareor peripheral devices, such as flash ROM (or equivalent nonvolatilememory) or optical disk drives and the like, may be used in addition toor in place of the hardware depicted in FIG. 3. Also, the processes ofthe present invention may be applied to a multiprocessor data processingsystem.

For example, data processing system 300, if optionally configured as anetwork computer, may not include SCSI host bus adapter 312, hard diskdrive 326, tape drive 32B, and CD-ROM 330, as noted by dotted line 332in FIG. 3 denoting optional inclusion. In that case, the computer, to beproperly called a client computer, must include some type of networkcommunication interface, such as LAN adapter 310, modem 322, or thelike. As another example, data processing system 300 may be astand-alone system configured to be bootable without relying on sometype of network communication interface, whether or not data processingsystem 300 comprises some type of network communication interface. As afurther example, data processing system 300 may be a Personal DigitalAssistant (PDA) device which is configured with ROM and/or flash ROM inorder to provide nonvolatile memory for storing operating system filesand/or user-generated data.

The depicted example in FIG. 3 and above-described examples are notmeant to imply architectural limitations.

The present invention uses a distributed data processing system similarto that shown in FIG. 1 to organize a set of hierarchically relatedglossaries. The various glossaries may be stored throughout anorganizational network yet managed by a single server that isresponsible for tracking, searching, and sorting the information storedin these glossaries.

With reference now to FIG. 4, a diagram depicts an example forconfiguring an dictionary/spell checker tool and acronym/glossary toolamong other software components in relation to the storage of data filesand information that may be accessed by each of the software components.Client 400 contains applications 402-406 and data files 408-418. Wordprocessor 402 reads and writes documents and text files 408. Spellchecker 404 may access a variety of databases against which words in adatastream may be compared. Word processor 402 may invoke spell checker404 to check the spelling of words within a datastream generated byreading documents and text files 408.

A datastream is an undifferentiated byte-by-byte flow of data. Streamsmay be input and output from a variety of devices, including storing thestream as a file or sending the stream to a display device so that thecontent of the stream may be presented to the user in a content window.As noted, a datastream may represent content retrieved from a file.However, a datastream may be derived from a variety of sources. Forexample, a datastream may be content retrieved according to a specificnetwork protocol across a network or the Internet. A datastream may alsobe piped-output from a batch-processing program.

Spell checker 404 reads Standard Dictionary 410, User Dictionary A 412,and User Dictionary B 414, which provide lists of properly spelledwords. Spell checker 404 may also store user-specified spellings ofwords in User Dictionary A 412 and User Dictionary B 414. UserDictionary A 412 and User Dictionary B 414 are editable and customizableto user preferred spellings of words and standard spellings of words notstored in Standard Dictionary 410.

Acronym/glossary tool 406 may be invoked by word processor 402 toperform processing on acronyms detected in datastreams generated byreading documents and text files 408. Acronym/glossary tool 406 may readand write User Glossary A 416 and User Glossary B 418. A glossary is anindexed list of terms or words found in or relating to a specificsubject or text with explanatory words or phrases. Acronym/glossary tool406 uses these glossaries to provide lists of previously definedacronyms. A standard glossary could be provided to acronym/glossary tool406 in a manner similar to the provision of Standard Dictionary 410.

User Glossary A 416 and User Glossary B 418 may be user-customizable anduser-editable so that the content of the glossary may be tailored to thespecific use required by a user of the data processing system.Alternatively, one of these glossaries may be a standard glossary thatcontains acronyms used by the general public in a manner similar toStandard Dictionary 410 providing commonly used words. Acronym/glossarytool 406 may provide one glossary per document so that each glossary istailored to the specific content of a single document.

Client 400 may communicate with server 450 to retrieve other glossaryand dictionary information. Server 450 may respond to requests fromclient 400 by retrieving other information from databases 452-458.

Corporate glossary 454 may store all acronyms used within an enterpriseor organization. As users at various client computers throughout theorganizational network preferentially store acronyms in user glossaries,the acronym/glossary tool on each computer may send the new acronym toserver 450 for storage in Corporate Glossary 454. The definitions andexpansions of these newly stored acronyms may then be shared with otherusers throughout the organizational network.

Department A Glossary 456 may store all acronyms used within DepartmentA of an organization. As users at various client computers throughoutDepartment A preferentially store acronyms in user glossaries, theacronym/glossary tool on each computer may send the new acronym toserver 450 for storage in Department A Glossary 456. The definitions andexpansions of these newly stored acronyms may then be shared with otherusers throughout Department A. Department B Glossary 458 operates in asimilar manner.

Although databases 452-458 are shown as glossaries, these databases maybe alternatively configured as dictionaries. In that situation, unusualwords, new words, special terms, and uncommon spellings may be storedand retrieved in a variety of locations within dictionaries stored onclients and servers.

Server 450 uses Corporate Organizational Database 452 to assist in thestorage and retrieval of information in databases 452-458 from varioususers within the organizational network. Server 450 ensures thatdatabases 452-458 are logically associated such that users view theinformation in the databases in a manner which reflects the corporateorganization stored in Corporate Organizational Database 452.

The manner in which the present invention uses the organizationalinformation is explained in greater detail further below.

With reference now to FIG. 5, a diagram depicts a standard documentwindow within a graphical user interface. Document window 500 containstitle bar 502, scrollbars 504 and 512, and content area 526. Scroll bar504 contains up arrow indicator 506, elevator 510 and down arrow 508 forscrolling the content area in a vertical direction in response to usermanipulation of a pointing device such as a mouse. Scrollbar 512contains left arrow 516 and right arrow 514 for scrolling the contentarea in a horizontal direction in response to user manipulation of apointing device. Content area 526 has text that contains acronyms 520and 522. An acronym is a word derived from the letters, a group ofletters, or selected letters in a multi-word descriptive noun or otherexpression that often serves as a mnemonic. Acronyms may be used forcorporate names, such as “IBM” for “International Business Machines”.Other acronyms become common words in the vernacular, such as “PC” for“personal computer” and “RAM” for “Random Access Memory”. In the exampleshown in content area 526, acronym 522 is “PBX”, which stands for“Private Branch Exchange”. Acronym 520 is “PSTN”, which stands for“Public Switch Telephone Network”.

With reference now to FIG. 6, a pictorial representation of anapplication window depicts a manner in which an acronym/glossary toolmay be invoked in another application. Window 600 shows an applicationwindow for a word processor, which includes title bar 602, menus604-614, and content area 622. File menu 604 contains menu items thatprovide file manipulation functions. Edit menu 606 contains menu itemsthat provide editing functions. View menu 608 contains items thatprovide formatting functions for the content displayed in documentwindows. Tools menu 610 provides menu item access to various functionsthat may operate in conjunction with the word processor. Window menu 612contains menu items that allow a user to manipulate various documentwindows within the word processor. Help menu 614 provides a user withaccess to help files.

Tools menu 610 contains “Spell Checker” menu items 616,“Acronym/Glossary Tool” menu item 618, and “Macro” menu item 620. Menus616-620 may be selected in a manner that is well-known in the art forinitiating the depicted function. In this example, a spell checker andan acronym/glossary tool are separately invokable functions.Alternatively, the spell checker and acronym/glossary tool may becombined so that the spell checking function and acronym/glossarychecking function operate in conjunction within a single tool. Asanother alternative, the acronym/glossary checking function may operatewithin an Internet browser. Other well-known manners of invoking variousfunctions within an application may be provided in accordance with theoperation of the present invention.

With reference now to FIG. 7, a pictorial document window depicts anacronym and its expansion within a datastream. FIG. 7 is similar to FIG.5. Window 700 contains content area 702 that presents the content of adocument to a user. The content area contains an acronym “PBX” and itsexpansion “Private Branch Exchange”. Acronym 704 is immediately followedby acronym expansion 706. The expansion of acronym 704 may have beenperformed automatically by the acronym tool according to an optionspecified by a user within an acronym tool. In this example, the acronymtool has expanded acronym 704 by immediately following it with itsexpansion because the occurrence of “PBX” in content area 702 is theforemost occurrence of this acronym within the document of datastream.Alternatively, the expansion of an acronym may be placed in front of theacronym or at some other location in close proximity to the acronym, andthe alternative placement may be selectable as an option by the user.

With reference now to FIG. 8, a pictorial representation depicts adialog box for a spell checking tool that may have been invoked inresponse to a user request. Window 800 may be presented to a user inresponse to a user selection through a menu similar to that shown inFIG. 6. Window 800 combines the functionality of a spell checker and anacronym/glossary tool.

At the point in time at which a dialog box similar to window 800appears, the spell checker tool has scanned the words present in adocument window of a word processor in order to determine whether any ofthe words are misspelled. Words that have not been identified ascorrectly spelled words or as previously defined acronyms or specialterms are presented to the user within window area 804.

In this case, the word “PBX” has been located within the document windowbut has not been matched with any words in any of the dictionaries orwith any acronyms or special terms in any of the glossaries. Properlyspelled words are suggested to a user in window area 806. In thisexample, the word “POX” has been suggested to the user as a replacementword for the unidentified word “PBX”. The spell checker tool identifiespotentially misspelled words and suggests to the user properly spelledwords.

If the user believes that the word is properly spelled or is anundefined acronym or special term, the user may select IGNORE button810. Selection of the IGNORE button informs the spell checker that thecurrently unidentified word, acronym, or term should be ignored by thespell checker, and the spell checking function should continue scanningfor misspelled words within the current document.

If the user believes that the unidentified word is a correctly spelledword, then the user may select “ADD TO DICTIONARY” button 814 thatinforms the spell checker to add the unidentified word to one of thedictionary files as a correctly spelled word. Subsequent comparisonsbetween the current word and the modified dictionary will result in apositive identification of the word so that it is not flagged as amisspelled word.

When the user requests to add the word to a dictionary, the spellchecker may first store the new word in the local dictionary, mostlikely in a user dictionary associated with the current user. The spellchecker may also attempt to disseminate the new word throughout anorganization by sending the new word to a server in command ofdisseminating dictionary and glossary information. The disseminationprocess is described in greater detail further below.

If the user agrees that the unidentified word is a misspelled word andbelieves that the unidentified word should be replaced with the wordsuggested by the spell checker, then the user may select CHANGE button812, which will replace the unidentified word with the suggested word.

If the user believes that the unidentified word is a correctly spelledacronym or special term, the user may select “ADD TO GLOSSARY” button816 that informs the spell checker to add the unidentified word to oneof the glossary files as a correctly spelled acronym/term. The spellchecker may then pop up another window in which the user may enter theexpansion and definition of the new acronym/term. If no default file haspreviously been specified, then the user may be prompted to select aparticular glossary into which the acronym should be placed. If the userdesires to stop the spell checker, then the user may select CANCELbutton 808.

Acronym box 830 presents a word that has previously been identified asan acronym and may have been retrieved from a glossary. In this case,the acronym box contains the acronym “PCX” which is the closest acronymthat approximates the spelling of the currently unidentified word. Theacronym box also contains the expansion of the suggested acronym.Alternatively, the expansion of the acronym may be provided in aseparate window box. Definition box 850 contains the definition for theacronym presented within acronym box 830.

“VIEW GLOSSARY” button 840 provides the user with the ability to viewthe remaining contents of the glossary. This may be helpful if the userhas misspelled the acronym but believes that the spelling isapproximately correct and would like to view the spelling of otheracronyms.

Window 800 also contains Auto Expand control 820 for allowing the userto specify an option for the automatic expansion of the displayedacronym/term within the current document. Radio buttons 822 and 824allow the user to toggle the feature on and off. If the user selectsthis feature, the acronym/glossary tool will insert an expansion of anacronym/term automatically into the current document in close proximityto the foremost occurrence of the acronym/term in the document.

“OPTIONS” button 842 may provide the user with the ability to specifyrules for resolving conflicts in the retrieval and expansion of acronymsfrom multiple sources. For example, the acronym “PCX” may be found inseveral glossaries, and the acronym/glossary tool may provide the userwith the ability to specify a ranking for each source. In the case inwhich the acronym/glossary tool finds an identical acronym in multiplesource files, if the user has previously specified that the ranking fora user glossary is higher than the standard glossary, then theacronym/glossary tool may present the user with an expansion anddefinition for the acronym from the user glossary, and the user couldthen request to view the information retrieved from the standardglossary.

Drop-down menu 844 displays the source of the acronym in acronym box830. In this case, “PCX” has been retrieved from User Glossary A. Theuser may see other sources for identically spelled acronyms by selectingone of the menu items in drop-down menu 844. For example, if anotherglossary had an acronym “PCX”, even if the acronym had a differentexpansion and definition, then the user could view the acronym byselecting the appropriate source file in the drop-down menu.

With reference now to FIG. 9, a block diagram depicts a set ofhierarchically arranged glossaries and dictionaries. FIG. 9 describesthe files as dictionary/glossaries in a manner in which dictionary-typeinformation for a set of particular words may be combined withglossary-type information so that any information related to aparticular word may be found in a single file. Alternatively,glossary-type information and dictionary-type information may be storedin different files.

User Dictionary/Glossary A 910 and User Dictionary/Glossary B 908 aredepicted as child dictionaries/glossaries of parent dictionary/glossary906. Department A Dictionary/Glossary 906 and Department BDictionary/Glossary 904 are depicted as child dictionaries/glossaries ofparent dictionary/glossary 902. Corporate Dictionary/Glossary 902 isdepicted as the root glossary. However, alternate configurations ofdictionaries and glossaries could be depicted in which otherorganizational entities are depicted within the tree of dictionaries andglossaries, such as subdepartments, divisions, etc.

The hierarchical set of dictionaries and glossaries serves as aconceptual representation of the manner in which a user may view thestorage of the dictionaries and glossaries. This conceptualrepresentation may reflect the structure of the organization in whichthe dictionaries and glossaries are being used. A server which maintainsthese dictionaries and glossaries may retrieve information about thestructure of the organization from a corporate organizational database,such as database 452 shown in FIG. 4. Although the dictionaries andglossaries may be stored in a data structure that reflects theorganizational structure, the dictionaries and glossaries may be storedin any number of different manners, and a dictionary server or aglossary server, through its various interfaces, creates an appearancethat the dictionaries or glossaries are stored in a hierarchical manner.

The present invention allows a user to share new word, new acronym, ornew term information with other persons within the same workgroup,department, division, corporation, etc. The server, through appropriatelinks with the system administration software, such as sessionmanagement, etc., can determine the appropriate organizationalinformation for each user that is accessing the hierarchical set ofwords. In this manner, the organizational unit builds a database ofinformation that is specifically tailored to the needs of the userswithin the organizational unit.

Each time that the user requests to save a new spelling of a word, anexpansion or definition of a new acronym, or a special term, the usermay specify a file to which the user desires to store the information.Although the spell checker tool or acronym/glossary tool may alreadyhave a default file, the user may specify a file according to the user'spreference. If the user believes that the new word should be stored at adepartment level so that other persons within the department may benefitfrom the information, then the user may request that the new word bestored in the dictionary or glossary for the department. In a similarmanner, the user may request that the new word be stored in thedictionary or glossary for the corporation or some other organizationalunit.

With reference now to FIG. 10, a pictorial representation depicts aspecific user's preference list for the manner in which a set ofhierarchically arranged dictionaries or glossaries are to be searched.FIG. 10 describes the files as dictionary/glossaries in a manner inwhich dictionary-type information for a set of particular words may becombined with glossary-type information so that any information relatedto a particular word may be found in a single file. Alternatively,glossary-type information and dictionary-type information may be storedin different files.

List 1000 shows a priority list for the manner in which a set ofdictionaries or glossaries are to be searched. Although the user mayperceive that a set of dictionaries or glossaries are hierarchicallyarranged, each user may specify a preferential ranking for the manner inwhich information retrieved from the dictionaries or glossaries are tobe presented to the user. Each user's list may be stored in a userprofile on the server, on the client, or within the spell checker toolor acronym/glossary tool.

Preference list entries 1002-1010 allow the user to choose an order forthe retrieval of information from the set of hierarchical dictionariesor glossaries. If more than one dictionary or glossary in the set ofdictionaries or glossaries has information that may be pertinent to theword that is searched, then the information is presented to the user inthe manner previously selected by the user according to the ranking ofthe entry within the list. If the user has not previously specified apreference list, then the information may be presented in a defaultmanner, for example, according to the informational structure present ina corporate organizational database.

With reference now to FIGS. 11A-11C, a diagram depicts a standarddocument window within a graphical user interface in which a user ispresented with a choice of information retrieved from multipleglossaries. FIG. 11A shows a document window 1100 containing multipleacronyms. FIG. 11B shows the selection of acronym 1102, after which theuser is presented with a menu from which the user may choose anappropriate action for the selection. Alternatively, the user clicks theright mouse button to see the menu of actions, or the user simplyright-clicks the acronym without selecting the acronym.

One of the actions that is presented to the user is “Expand” menu item1104. The application has determined in the background that the wordthat the user has selected is an acronym. By searching through theavailable glossaries, the application, either alone or executing inconjunction with the acronym/glossary tool, has found at least oneglossary entry for the word, and the application provides the user withthe ability to insert the expansion of the acronym in close proximity tothe acronym.

FIG. 11C shows the selection of the “Expand” menu item by the user. Themenu of actions is a hierarchical menu, and after the user has selectedthe “Expand” menu item, the application presents the choice of acronymsto the user as a submenu. In this case, the application has communicatedwith a server to retrieve a set of identically spelled acronyms “PBX”that have different meanings. Menu item 1106 contains “PBX: PublicBranch Exchange” retrieved from a personal user glossary named “UserGlossary A”. Menu item 1108 contains “PBX: Public Bond Transfer”retrieved from a departmental glossary named “Finance DepartmentGlossary”. Menu item 1110 contains “PBX: PolyBiphenylXenochloride”retrieved from a departmental glossary name “Manufacturing DepartmentGlossary”. Alternatively, the name of the glossary file is not shown, orother information pertinent to the acronym may be shown, such as adefinition for the acronym. Once the user has selected an expansion forthe acronym, then the application may insert the expansion in closeproximity to the acronym, as shown in FIG. 7.

The application has presented the retrieved acronyms in the orderspecified by the user in a hierarchical preference list similar to thelist shown in FIG. 10. In this case, the user has specified thatinformation from User Glossary A should be presented before informationfrom the Finance Department Glossary, which should be presented beforethe information from the Manufacturing Department Glossary.

If a user is editing a document, and the user has previously selected an“auto-expand” option similar to that shown in FIG. 8, then each timethat the user types a word that the application recognizes as anacronym, then the application may pop-up a dialog box or a menu similarto that shown in FIG. 11C to allow a user to select the acronymexpansion that is best associated with the content of the document.

With reference now to FIG. 12, a flowchart depicts a manner in whichchanges to dictionaries and glossaries may be disseminated throughout anorganization. The process begins when a user of an application with anassociated language tool, either a spell checking tool oracronym/glossary tool, determines that a new word should be added to adictionary or glossary (step 1202). Depending on options selected by auser on the client computer, the language tool may need to determine themanner in which the user's update request should be processed (step1204).

If the user specifies a particular dictionary or glossary, then thelanguage tool may store the new word or acronym, or may request thestorage of the new word or acronym, in the specified file. If thespecified file is located locally on a client computer, then thelanguage tool may update the local file (step 1206). If the specifiedfile is located centrally on a server or elsewhere within the network,then the language tool may send the appropriate update request to theappropriate server (step 1208).

The user may have the ability to set several options within the languagetool for requesting dictionary or glossary updates. For example, eachtime the user requests an update, the language tool may send an updaterequest to the server, whether or not a specific dictionary or glossaryfile has been specified. Various selectable options may be chosen by theuser or by a system administrator as to the manner in which an update toa dictionary or glossary file is disseminated throughout a network.

When the server receives an update request (step 1210), the serverdetermines the appropriate files to be updated. This may requirechecking a system administration file or user profile file to lookup anyrules for the manner in which update requests from the user are to beprocessed (step 1212). These update rules may reflect a corporateorganizational structure or may require lookups in an organizationaldatabase.

For example, the server may update only a departmental dictionary orglossary for this particular user. In this case, it may have beendetermined that new terms from this user and similar users are usuallyonly needed or helpful to other people within the same department. Ifthe engineering department frequently uses terms that are only useful tofellow engineers, then the server may not replicate the update to anyother dictionaries or glossaries outside of the engineering department.This type of rule may be set as a default for all persons within adepartment and overridden on a per-user basis, etc.

As another example, any update requests from another user may require anupdate to a corporate-level dictionary or glossary. If the humanresources department frequently uses terms that must be understood byall employees so that each employee understands a company benefit plan,then these updates may be replicated to a corporate-level file.

The update rules for determining which files to update may also specifythat an update to a dictionary or glossary at a particularorganizational level is to be disseminated to any person within theparticular organizational level. In this case, the server replicates theupdate to the appropriate persons at the appropriate client computersthat have copies of the dictionary or glossary (step 1214). Theseupdates may be sent whenever the client application notifies the serverthat the application is in use. Alternatively, the client may configuredwith the appropriate system information so that the client determineswhich copies of the dictionary or glossary must be updated.

New words and terms may be disseminated almost immediately throughout anorganization by modifying the rules by which the dictionaries orglossaries are updated. If an update to a central dictionary or glossaryis always replicated from a server to other copies of the dictionary orglossary on multiple clients and vice versa, then the copy on the servermay be regarded as a master copy, and each copy of the dictionary orglossary may be kept synchronized and coherent with the masterdictionary or glossary.

The processing methods and tools of the present invention provides auser with a convenient manner for creating a document or datastream thatis more readable. New words and acronyms may be stored and retrievedfrom a dictionary or glossary that may be one of a set of dictionariesor glossaries that are organized hierarchically in a manner similar tothe organizational hierarchy of the users which use the dictionaries orglossaries.

By storing and retrieving word information in a hierarchical fashion,the dictionaries and glossaries may be configured to the particularneeds and purposes of the employees. In this manner, the dictionary orglossary will tend to match the context of the content of the documentsthat are created and viewed by these employees. The employees may thenassist other employees by replicating language information to otherdictionaries or glossaries so that other employees may insert thelanguage information into other documents or may use the languageinformation to understand other documents.

It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,those of ordinary skill in the art will appreciate that the processes ofthe present invention are capable of being distributed in the form of acomputer readable medium of instructions and a variety of forms and thatthe present invention applies equally regardless of the particular typeof signal bearing media actually used to carry out the distribution.Examples of computer readable media include recordable-type media such afloppy disc, a hard disk drive, a RAM, and CD-ROMs and transmission-typemedia such as digital and analog communications links.

The description of the present invention has been presented for purposesof illustration and description, but is not intended to be exhaustive orlimited to the invention in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the art. Theembodiment was chosen and described in order to best explain theprinciples of the invention, the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

1-4. (canceled)
 5. A method for processing a datastream, the methodcomprising the computer-implemented steps of: detecting an acronym in adatastream; and automatically inserting data associated with the acronyminto the datastream in close proximity to the acronym, wherein the dataassociated with the acronym is selected from a hierarchical set ofglossaries.
 6. (canceled)
 7. The method of claim 5 further comprising:automatically scanning the datastream, wherein detecting in acronym in adatastream comprises; automatically detecting, in the datastream, a wordthat does not match an indexed term or word in a glossary; andidentifying the unmatched word as an acronym; and wherein automaticallyinserting data associated with the acronym into the datastream in closeproximity to the acronym, wherein the data associated with the acronymis selected from a hierarchical set of glossaries, comprises; inresponse to identifying the acronym, automatically inserting dataassociated with the acronym into the datastream in close proximity tothe acronym, wherein the data associated with the acronym is selectedfrom a hierarchical set of glossaries.
 8. The method of claim 7 furthercomprising: an organizational database comprising information fororganizational units within the data processing system, wherein eachglossary in the hierarchical set of glossaries is associated with anorganizational unit.
 9. The method of claim 7 wherein the step ofselecting data associated with the acronym further comprises retrievingdata from each source glossary, wherein a source glossary is a glossarywithin the hierarchical set of glossaries that contains an entry for theacronym.
 10. The method of claim 9 further comprising: presenting to theuser the data retrieved from each source glossary; selecting a sourceglossary; and identifying the retrieved data from the selected sourceglossary as the inserted data in the datastream.
 11. The method of claim10 further comprising: an organizational database comprising informationfor organizational units within the data processing system, wherein eachglossary in the hierarchical set of glossaries is associated with anorganizational unit; storing a user preference list for an order ofpresentation for information from a set of glossaries, wherein entriesin the user preference list are associated with the organizationalunits; and presenting a list of source glossaries to a user according toan order stored in the user preference list.
 12. The method of claim 7further comprising: updating a master glossary at a server; and servingthe update to the master glossary to a client to update a local copy ofthe glossary, wherein the local copy of the glossary is a member of thehierarchical set of glossaries.
 13. The method of claim 7 wherein thestep of selecting data associated with the acronym further comprisesretrieving data from a default glossary, wherein the default glossary isa glossary previously selected from the hierarchical set of glossaries.14. The method of claim 13 wherein the default glossary is selectedbased on a predetermined association selected from the group consistingof: an association between a glossary and a user, an association betweena glossary and a document or datastream, an association between aglossary and an organizational unit, or an association between a userand an organizational unit. 15-29. (canceled)
 30. A data processingsystem for processing a datastream, the data processing systemcomprising: detecting means for detecting an acronym in a datastream;and inserting means for automatically inserting data associated with theacronym into the datastream in close proximity to the acronym, whereinthe data associated with the acronym is selected from a hierarchical setof glossaries.
 31. (canceled)
 32. The data processing system of claim30, further comprising: scanning means for automatically scanning thedatastream, wherein the detecting means comprises; detecting means forautomatically detecting, in the datastream, a word that does not matchan indexed term or word in a glossary; and first identifying means foridentifying the unmatched word as an acronym, and wherein the insertingmeans comprises: inserting means for automatically inserting, inresponse to identifying the acronym, data associated with the acronyminto the datastream in close proximity to the acronym, wherein the dataassociated with the acronym is selected from a hierarchical set ofglossaries.
 33. The data processing system of claim 32 furthercomprising: an organizational database comprising information fororganizational units within the data processing system, wherein eachglossary in the hierarchical set of glossaries is associated with anorganizational unit.
 34. The data processing system of claim 32 whereinselecting data associated with the acronym further comprises retrievingmeans for retrieving data from each source glossary, wherein a sourceglossary is a glossary within the hierarchical set of glossaries thatcontains an entry for the acronym.
 35. The data processing system ofclaim 34 further comprising: presenting means for presenting to the userthe data retrieved from each source glossary; selecting means forselecting a source glossary; and second identifying means foridentifying the retrieved data from the selected source glossary as theinserted data in the datastream.
 36. The data processing system of claim35 further comprising: an organizational database comprising informationfor organizational units within the data processing system, wherein eachglossary in the hierarchical set of glossaries is associated with anorganizational unit; storing means for storing a user preference listfor an order of presentation for information from a set of glossaries,wherein entries in the user preference list are associated with theorganizational units; and presenting means for presenting a list ofsource glossaries to a user according to an order stored in the userpreference list.
 37. The data processing system of claim 32 furthercomprising: updating means for updating a master glossary at a server;and server means for serving the update to the master glossary to aclient to update a local copy of the glossary, wherein the local copy ofthe glossary is a member of the hierarchical set of glossaries.
 38. Thedata processing system of claim 32 wherein the selected data associatedwith the acronym further comprises data retrieved from a defaultglossary, wherein the default glossary is a glossary previously selectedfrom the hierarchical set of glossaries.
 39. The data processing systemof claim 38 wherein the default glossary is selected based on apredetermined association selected from the group consisting of: anassociation between a glossary and a user, an association between aglossary and a document or datastream, an association between a glossaryand an organizational unit, or an association between a user and anorganizational unit. 40-52. (canceled)
 53. A computer program product ina computer-readable medium for use in a data processing system forprocessing a datastream, the computer program product comprising: firstinstructions for detecting an acronym in the datastream; and secondinstructions for automatically inserting data associated with theacronym into the datastream in close proximity to the acronym, whereinthe data associated with the acronym is selected from a hierarchical setof glossaries.
 54. The computer program product of claim 53, furthercomprising: third instructions for automatically scanning thedatastream, wherein the first instructions for detecting an acronym inthe datastream comprises; fourth instructions for automaticallydetecting, in the datastream, a word that does not match an indexed termor word in a glossary; and fifth instructions for identifying theunmatched word as an acronym; and wherein the second instructions forautomatically inserting data associated with the acronym into thedatastream in close proximity to the acronym, wherein the dataassociated with the acronym is selected from a hierarchical set ofglossaries, comprises: sixth instructions for automatically inserting,in response to identifying the acronym, data associated with the acronyminto the datastream in close proximity to the acronym, wherein the dataassociated with the acronym is selected from a hierarchical set ofglossaries. 55-65. (canceled)